package com.mmy.service.permissionmenu;

import java.util.HashMap;
import java.util.List;

import com.mmy.domain.permissionmenu.TConstMenu;
import com.mmy.domain.sys.TSysUser;

public interface MenuService {
	
	/**
	 * 函数功能说明： 通过菜单ID查找菜单
	 *
	 * @param 参数说明
	 * @return 返回值说明 ：菜单对象
	 * @throws 异常处理说明
	 * @author 创建人 shangzl
	 * @date 创建日期 2020-11-12
	 */
	public TConstMenu findByMenuID(int iMenuID);

	/**
	 * 函数功能说明： 查找全部菜单
	 * 
	 * @param 参数说明
	 * @return 返回值说明 ：菜单集合
	 * @throws 异常处理说明
	 * @author 创建人 shangzl
	 * @date 创建日期 2020-11-12
	 */
	public List<TConstMenu> findAll();

	/**
	 * 函数功能说明： 查找不包含已有ID的菜单
	 * 
	 * @param 参数说明
	 * @return 返回值说明 ：菜单集合
	 * @throws 异常处理说明
	 * @author 创建人 shangzl
	 * @date 创建日期 2020-11-12
	 */
	public List<TConstMenu> findMenuNotInID(int iRoleID);

	/**
	 * 函数功能说明： 获取所有顶级菜单
	 * 
	 * @param 参数说明
	 * @return 返回值说明 ：菜单集合
	 * @throws 异常处理说明
	 * @author 创建人 shangzl
	 * @date 创建日期 2020-11-12
	 */
	public List<TConstMenu> findAllMenu();

	/**
	 * 函数功能说明： 新建菜单
	 * 
	 * @param 参数说明
	 * @return 返回值说明 ：无返回值
	 * @throws 异常处理说明
	 * @author 创建人 shangzl
	 * @date 创建日期 2020-11-12
	 */
	public void createMenu(TConstMenu tConstMenu, TSysUser tSysUser);

	/**
	 * 函数功能说明： 删除菜单
	 * 
	 * @param 参数说明
	 * @return 返回值说明 ：无返回值
	 * @throws 异常处理说明
	 * @author 创建人 shangzl
	 * @date 创建日期 2020-11-12
	 */
	public void delMenu(String checkList);

	/**
	 * 函数功能说明： 修改菜单
	 * 
	 * @param 参数说明
	 * @return 返回值说明 ：无返回值
	 * @throws 异常处理说明
	 * @author 创建人 shangzl
	 * @date 创建日期 2020-11-12
	 */

	public void updateMenu(TConstMenu tConstMenu, TSysUser tSysUser);

	/**
	 * 函数功能说明： 上移前台菜单
	 * 
	 * @param 参数说明
	 * @return 返回值说明：菜单集合
	 * @throws 异常处理说明
	 * @author 创建人 shangzl
	 * @date 创建日期 2020-11-12
	 */
	public List<TConstMenu> upFrontMenu(int iID, String strMenuName, String strType, String strChildMenu,
			String pageNumber, String pageSize, HashMap<String, Integer> mapPage);

	/**
	 * 函数功能说明： 下移前台菜单
	 * 
	 * @param 参数说明
	 * @return 返回值说明 ：菜单集合
	 * @throws 异常处理说明
	 * @author 创建人 shangzl
	 * @date 创建日期 2020-11-12
	 */
	public List<TConstMenu> downFrontMenu(int iID, String strMenuName, String strType, String strChildMenu,
			String pageNumber, String pageSize, HashMap<String, Integer> mapPage);

	/**
	 * 函数功能说明： 上移后台菜单
	 * 
	 * @param 参数说明
	 * @return 返回值说明 ：菜单集合
	 * @throws 异常处理说明
	 * @author 创建人 shangzl
	 * @date 创建日期 2020-11-12
	 */
	public List<TConstMenu> upBackMenu(int iID, String strMenuName, String strType, String strChildMenu,
			String pageNumber, String pageSize, HashMap<String, Integer> mapPage);

	/**
	 * 函数功能说明： 下移后台菜单
	 * 
	 * @param 参数说明
	 * @return 返回值说明 ：菜单集合
	 * @throws 异常处理说明
	 * @author 创建人 shangzl
	 * @date 创建日期 2020-11-12
	 */
	public List<TConstMenu> downBackMenu(int iID, String strMenuName, String strType, String strChildMenu,
			String pageNumber, String pageSize, HashMap<String, Integer> mapPage);

	/**
	 * 函数功能说明： 查询前台菜单
	 * 
	 * @param 参数说明
	 * @return 返回值说明 ：菜单集合
	 * @throws 异常处理说明
	 * @author 创建人 shangzl
	 * @date 创建日期 2020-11-12
	 */
	public List<TConstMenu> frontMenu(String pageNumber, String pageSize, String strMenuName, String strType,
			String strChildMenu);

	/**
	 * 函数功能说明： 前台分页
	 * 
	 * @param 参数说明
	 * @return 返回值说明 ：map
	 * @throws 异常处理说明
	 * @author 创建人 shangzl
	 * @date 创建日期 2020-11-12
	 */

	public HashMap<String, Integer> mapFrontMenu(String pageNumber, String pageSize, String strMenuName, String strType,
			String strChildMenu);

	/**
	 * 函数功能说明： 查询后台菜单
	 * 
	 * @param 参数说明
	 * @return 返回值说明 ：菜单集合
	 * @throws 异常处理说明
	 * @author 创建人 shangzl
	 * @date 创建日期 2020-11-12
	 */
	public List<TConstMenu> backMenu(String pageNumber, String pageSize, String strMenuName, String strType,
			String strChildMenu);

	/**
	 * 函数功能说明： 后台分页
	 * 
	 * @param 参数说明
	 * @return 返回值说明 ：map
	 * @throws 异常处理说明
	 * @author 创建人 shangzl
	 * @date 创建日期 2020-11-12
	 */

	public HashMap<String, Integer> mapBackMenu(String pageNumber, String pageSize, String strMenuName, String strType,
			String strChildMenu);
}
